package com.company;

/**
 * @author zhf
 * @date 2021/11/17
 */

import java.util.Arrays;

/**
 * 给定一个包含红色、白色和蓝色，一共 n 个元素的数组，原地对它们进行排序，使得相同颜色的元素相邻，并按照红色、白色、蓝色顺序排列。
 */
public class SortColor {
    public static void main(String[] args) {
        int[] nums = new int[]{2,0,2,1,1,0};
        SortColor sortColor = new SortColor();
        sortColor.sortColors(nums);
        System.out.println(Arrays.toString(nums));
    }
    public void sortColors(int[] nums) {
//        Arrays.sort(nums);
        int len = nums.length;
        int p1 = 0;
        int p2 = len - 1;
        int i = 0;
        while (len != 0) {
            if (nums[i] == 0){
                int temp = nums[i];

                nums[i] = nums[p1];
                nums[p1] = temp;
                p1++;
            }else if (nums[i] == 2){
                int temp = nums[i];

                nums[i] = nums[p2];
                nums[i] = temp;
                p2--;
            }
            i++;

        }
    }

}
